package cn.pkubangbang.demo.democontact.service;

import cn.pkubangbang.demo.democontact.entity.Person;
import java.util.List;

/**
 * @Author: zhangzhenbang@k2data.com.cn
 * @Date: 2018-08-23 17:31
 */
public interface PersonService {

    /**
     * 通过id定位到用户
     * @param id 用户id
     * @return 一个用户
     */
    Person getPersonById(Integer id);

    /**
     * 通过名字搜索用户
     * @param name 用户的名字
     * @return 名字包含name的用户，是一个List
     */
    List<Person> findPersonByName(String name);

    /**
     * 查找某人的朋友
     * @param p 用户
     * @return 用户的所有朋友，是一个List
     */
    List<Person> queryFriends(Person p);

    /**
     * 查找“可能认识的人”。可能认识的人的定义是：是朋友的朋友，但不是自己的朋友，并且排除自己
     * @param p 用户
     * @return 用户可能认识的人，是一个List
     */
    List<Person> peopleMayKnow(Person p);

    /**
     * 检查：是否任意两人都是朋友
     * @param people 待检查的人
     * @return true 如果彼此都是朋友；false 如果存在两个人互相不认识
     */
    boolean acquaintant(List<Person> people);

    /**
     * 检查：两个人是不是朋友
     * @param p1 一个人
     * @param p2 另一个人
     * @return true 如果两个人是朋友； false 如果两个人不是朋友
     */
    boolean acquaintant(Person p1, Person p2);

}
